home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / circuits / spice2g6.z / spice2g6 / spice / Fortran / memadj.f < prev    next >
Encoding:
Text File  |  1989-02-03  |  924 b   |  29 lines

  1.       subroutine memadj
  2.       implicit double precision (a-h,o-z)
  3. c spice version 2g.6  sccsid=memmgr 3/15/83
  4.       common /memmgr/ cpyknt,istack(1),lorg,icore,maxcor,maxuse,memavl,
  5.      1   ldval,numblk,loctab,ltab,ifwa,nwoff,ntab,maxmem,memerr,nwd4,
  6.      2   nwd8,nwd16
  7.    50 maxuse=max0(maxuse,(ldval-memavl-ifwa))
  8.       memdec=2*nxtmem(1)
  9.       if (memavl.lt.memdec) return
  10. c...  compress current allocations of memory
  11.       call comprs(0,ldval)
  12. c...  adjust memory size
  13.       memdel=0
  14.    60 icore=icore-memdec
  15.       memdel=memdel+memdec
  16.       memavl=memavl-memdec
  17.       if (memavl.ge.memdec) go to 60
  18.       ltab1=ldval-ntab
  19.       istack(ltab1+2)=istack(ltab1+2)-memdel
  20. c...  relocate block entry table
  21.       nwords=numblk*ntab
  22.       cpyknt=cpyknt+dble(nwords)
  23.       call copy4(istack(loctab+1),istack(loctab-memdel+1),nwords)
  24.       loctab=loctab-memdel
  25.       ldval=ldval-memdel
  26.       call memory
  27.       return
  28.       end
  29.